package com.fqy.thread.lock;

import java.util.UUID;

/**
 * User: fqy
 * Date: 2021/8/31
 * Time: 15:55
 * Describe:线程   操作  资源类  8锁案例
 * 1 有两个线程标准访问，请问先打印邮件还是短信？ 邮件
 * 2 邮件方法暂停4秒钟，请问先打印邮件还是短信？ 邮件
 * 3 新增一个hello普通方法，请问先打印邮件还是hello？ hello
 * 4 有两部手机，请问先打印邮件还是短信？ 短信
 * 5 有两个静态同步方法，同一部手机，请问先打印邮件还是短信？ 邮件
 * 6 有两个静态同步方法，有2部手机，请问先打印邮件还是短信？ 邮件
 * *7 有1个静态同步方法，有1个普通同步方法,有1部手机，请问先打印邮件还是短信？ 短信
 * 解释：别的实例对象的普通同步方法因为跟该实例对象的普通同步方法用的是不同的锁，所以不用等待该实例对象已获取锁的普通
 * *8 有1个静态同步方法，有1个普通同步方法,有2部手机，请问先打印邮件还是短信？ 短信
 *
 */
public class PhoneTest {

    public static void main(String[] args) throws InterruptedException {
        Phone phone1 = new Phone();
        Phone phone2 = new Phone();
        new Thread(() -> {
            try {
                phone1.sendEmail();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }, "t1").start();

        Thread.sleep(4);

        new Thread(() -> {
            try {
                phone1.sendMsg();
//                phone2.sendMsg();
//                phone1.phone();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }, "t2").start();

        for (int i = 0; i < 3; i++) {
            System.out.println(UUID.randomUUID().toString().substring(0, 6));
        }
    }
}
